//防抖函数
export const imageStabilization =
function(fn, times) {
  var clsPreTime = 0;
  return function () {
    if (clsPreTime) clearTimeout(clsPreTime);
    clsPreTime = setTimeout(() => {
      console.log(this);
      fn.apply(this, arguments);
    }, times);
  };
}
//节流函数
export const throttle=function(fn, times) {
  var clsPreTime = 0;
  var isSub = false;
  return function () {
    if (!isSub) {
      isSub = true;
      if (clsPreTime) clearTimeout(clsPreTime);
      clsPreTime = setTimeout(() => {
        // console.log(this);
        fn.apply(this, arguments);
        isSub = false;
      }, times);
    }
  };
}
//设置本地存储
export const setStore = function (name,value) {
  if (!name) { return }

  if (typeof value != 'string') {
    value = JSON.stringify(value)
   }

  window.localStorage.setItem(name,value)
}
//获取本地存储
export const getStore = function (name) {
  if (!name) { return }
  return window.localStorage.getItem(name)
}
// 判断本地是否存在数据，存在取出，不存在请求接口并缓存到本地
// (key,service,data) == ([键名],[请求接口],[请求参数])
// return 数据
export const saveStore=(key, service, data = [])=> {
  let keyName = getStore(key),
    keyValue = JSON.parse(keyName);

  if (!keyName && !keyValue) {
    service(...data).then((res) => {
      keyValue = res;
      setStore(key, res);
      console.log(keyValue);
    });
  }
  console.log(keyValue);
  return keyValue;
}

// 判断本地是否存在指定的键，值是否存在相同的，存在一致的值直接退出，不存在保存数据
// export const saveHistory = function(name,value){
//   if(!name | !value) return
//   let storyageList = getStore(name)
//   let values;
//   let flag;
//   // 判断是否本地是否存在指定的键
//   if(storyageList){
//       console.log(storyageList);
//       values = JSON.parse(storyageList)
//       console.log(values instanceof Array);

//       flag = values.indexOf((item)=>{
//         return item.value == value
//       })
//       console.log(flag);
//       // 判断是否存在相同的值
//       if(flag){
//         return 
//       }else{
//         // 数组拼接
//         let arr=values.push({value})
//         setStore(name,arr)
//       }
   
    
//   }else{
//     setStore(name,[{value}])
//   }
  
// }


